package com.jt.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import java.util.Date;

@Component  //将对象交给Spring容器管理 因为不属于C/S/M,所以使用Component注解
public class MyMetaObjectHandler implements MetaObjectHandler {

    //入库操作时调用 created/updated

    /**
     * setFieldValByName(arg1,arg2,arg3)
     * arg1:    自动填充的字段名称
     * arg2:    自动填充的值
     * arg:     metaObject 固定写法
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        //入库时created和updated时间需要保持一致,所以引用公共属性
        Date date = new Date();
        this.setFieldValByName("created",date,metaObject);
        this.setFieldValByName("updated",date,metaObject);

    }
    //更新操作时调用 updated
    @Override
    public void updateFill(MetaObject metaObject) {
        Date date = new Date();
        this.setFieldValByName("updated", new Date(), metaObject);

    }
}
